package com.liyiruo.tx.service.main10;

import com.liyiruo.tx.mapper.TableAMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * 直接抛出事务异常，且不会有数据存储到数据库。由于testMain事务传播类型为REQUIRED，所以testMain是运行在事务中，
 * 而testB事务传播类型为NEVER，所以testB不会执行而是直接抛出事务异常，
 * 此时testMain检测到异常就发生了回滚，所以最终数据库不会有数据存入。
 * @author liyiruo
 * @Description
 * @Date 2022/2/18 下午5:11
 */
@Service
public class TestMain10 {

    @Autowired
    private TableAMapper tableAMapper;
    @Autowired
    private TestBo testBo10;

    @Transactional(propagation = Propagation.REQUIRED)
    public void testMain() {
        tableAMapper.addTableA();  //调用A入参a1
        testBo10.testB();    //调用testB
    }
}
